package com.hsm;

import java.util.Iterator;
import java.util.LinkedList;

public class TestLinkedList {
    public static void main(String[] args) {
        /*
        LinkedList的常用方法：
        增加 addFirst(E e) addLast(E e)
            offer(E e) offerFirst(E e) offerLast(E e)
        删除 poll()
            pollFirst() pollLast()
            removeFirst() removeLast()
        修改
        查看 element()
            getFirst() getLast()
            indexOf(Object o) LastIndexOf(Object o)
            peek()
            peekFirst() peekLast()
        判断
        */
        //创建一个LinkedList集合的对象
        LinkedList<String> ll = new LinkedList<>();
        ll.add("aaaa");
        ll.add("bbbb");
        ll.add("cccc");
        ll.add("dddd");
        ll.add("eeee");
        ll.add("ffff");
        ll.add("bbbb");
        //在这个类中可以添加重复的数据
        ll.addFirst("a");
        ll.addLast("zzzz");
        ll.offer("1");
        ll.offerFirst("2");
        ll.offerLast("3");
        //清空元素
        //ll.clear();
        System.out.println(ll.pollFirst());
        System.out.println(ll.removeFirst());
        System.out.println(ll);

        //集合的遍历
        //普通的for循环
        System.out.println("---------");
        for(int i=0 ;i<ll.size();i++){
            System.out.println(ll.get(i));
        }
        //for的强循环
        System.out.println("---------");
        for(String str : ll){
            System.out.println(str);
        }
        //迭代器
        System.out.println("---------");
        Iterator<String> it = ll.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        //源码中可能有的for循环
        for( Iterator<String> it2 = ll.iterator();it2.hasNext();) {
            System.out.println(it2.next());
        }
        }
    }
